package com.todod.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.todod.dto.PublicFileDto;
import com.todod.entity.QueryPublicFile;
import com.todod.model.PublicFile;

/**
 * @author lql
 * @date 2020年12月25日
 */
public interface PublicFileMapper extends BaseMapper<PublicFile> {

	IPage<PublicFileDto> getListPage(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	List<PublicFileDto> getInfo(@Param("code") Long code);

	List<PublicFileDto> getListByBatchCode(@Param(value = "batchCode") String batchCode);

	List<PublicFileDto> getFileList(@Param("userId") Long userId, @Param("companyId") Long companyId);

	IPage<PublicFileDto> getSPListPage(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	List<PublicFile> selectByGftId(@Param("gftId") Long gftId, @Param(value = "batchCode") String batchCode);

	IPage<PublicFileDto> getNewList1(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	IPage<PublicFileDto> getNewList2(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	List<PublicFileDto> getNewFileList1(@Param("userId") Long _userId, @Param("companyId") Long companyId);

	List<PublicFileDto> getNewFileList2(@Param("userId") Long _userId, @Param("companyId") Long companyId);

	List<PublicFileDto> getNewListEs();

	List<PublicFileDto> getNewList12(@Param("userId") Long _userId);

	List<PublicFileDto> getUpSortByUser(@Param("departId") Long departId);

	List<PublicFileDto> getUpSortByRole(@Param("departId") Long departId);

	List<PublicFileDto> getSortByDate(@Param(value = "startDate") String start_time,
			@Param(value = "endDate") String end_time);

	IPage<PublicFileDto> getListPageInState(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	// 获取分享文件夹或文件列表 --一层
	IPage<PublicFileDto> getShareList(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	// 获取分享文件夹或文件列表 --根目录
	IPage<PublicFileDto> getShareRootList(Page<PublicFileDto> page, @Param("userId") Long userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	// 获取我的文档第一层目录列表
	List<PublicFileDto> getFileShareFirst(@Param("userId") Long _userId);

	// 获取我的文档第二层个人目录列表
	IPage<PublicFileDto> getFileShareSecond(Page<PublicFileDto> page, @Param("userId") Long _userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	// 获取我的文档第二层分享目录列表
	IPage<PublicFileDto> getFileSharePage(Page<PublicFileDto> page, @Param("userId") Long _userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	IPage<PublicFileDto> getCollectList(Page<PublicFileDto> page, @Param("userId") Long _userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	IPage<PublicFileDto> getNewListPage(Page<PublicFileDto> page, @Param("userId") Long _userId,
			@Param("queryPublicFile") QueryPublicFile queryPublicFile);

	List<PublicFileDto> getFirstPageList(@Param("userId") Long _userId, @Param("companyId") Long companyId);
}
